Apache NiFi এর মাধ্যমে ডেটা Ingest করা

Java Technologies - অ্যাপাচি নিফাই (Apache NiFi)
173
173

অ্যাপাচি নিফাই (Apache NiFi) একটি শক্তিশালী ডেটা ইন্টিগ্রেশন টুল, যা ডেটা ইনজেস্ট (Data Ingestion) বা সংগ্রহ করার জন্য অত্যন্ত কার্যকরী। নিফাই বিভিন্ন সোর্স থেকে ডেটা সংগ্রহ করতে পারে, যেমন ফাইল সিস্টেম, ডাটাবেস, API, IoT ডিভাইস, এবং আরও অনেক স্থান থেকে। এই ডেটা ইনজেশন প্রক্রিয়াটি নিফাই-এর মাধ্যমে সহজ, দ্রুত এবং কার্যকরীভাবে করা সম্ভব।

নিফাই এর মাধ্যমে ডেটা ইনজেশন করতে হলে, আপনাকে কিছু প্রাথমিক কাজ করতে হবে, যেমন সোর্স নির্ধারণ করা, প্রক্রিয়াকরণ ফ্লো তৈরি করা এবং সেই ফ্লো দিয়ে ডেটা সংগ্রহ করা। নিচে এই প্রক্রিয়ার কিছু মূল ধাপ আলোচনা করা হলো।


ডেটা ইনজেশন প্রক্রিয়া

১. সোর্স নির্বাচন করা (Choosing the Data Source)

প্রথমেই আপনাকে ডেটা সোর্স নির্বাচন করতে হবে। নিফাই বিভিন্ন উৎস থেকে ডেটা গ্রহণ করতে সক্ষম, যেমন:

  • ফাইল সিস্টেম: ফাইল থেকে ডেটা সংগ্রহ।
  • ডাটাবেস: যেমন MySQL, PostgreSQL বা অন্য কোন ডাটাবেস থেকে ডেটা সংগ্রহ।
  • API: HTTP বা REST API থেকে ডেটা ইনজেস্ট করা।
  • IoT ডিভাইস: সেন্সর বা অন্যান্য IoT ডিভাইস থেকে ডেটা সংগ্রহ।

২. প্রসেসর নির্বাচন এবং কনফিগারেশন (Choosing and Configuring Processors)

নিফাই-তে ডেটা ইনজেশন সাধারণত প্রসেসর ব্যবহার করে করা হয়। প্রতিটি প্রসেসর একটি নির্দিষ্ট কাজ বা কার্যক্রম সম্পাদন করে। ডেটা সোর্স থেকে ডেটা গ্রহণ করার জন্য সাধারণত নিচের প্রসেসরগুলি ব্যবহার করা হয়:

  • GetFile: ফাইল সিস্টেম থেকে ডেটা ইনজেস্ট করার জন্য।
  • GetHTTP: HTTP থেকে ডেটা সংগ্রহ করতে ব্যবহৃত হয়।
  • ExecuteSQL: SQL কুয়েরি চালিয়ে ডাটাবেস থেকে ডেটা ইনজেস্ট করা।
  • ListenHTTP: HTTP API থেকে রিয়েল-টাইম ডেটা গ্রহণের জন্য ব্যবহৃত হয়।

প্রসেসর কনফিগার করার সময় আপনাকে সোর্সের তথ্য যেমন ডিরেক্টরি পাথ (ফাইল সোর্সের জন্য), ডাটাবেসের সার্ভার তথ্য (ডাটাবেস সোর্সের জন্য) বা API URL প্রদান করতে হবে।

৩. ডেটা ফ্লো তৈরি (Creating Data Flow)

নিফাই-এ ডেটা ফ্লো তৈরি করার জন্য গ্রাফিক্যাল ইন্টারফেসে বিভিন্ন প্রসেসর এবং কনেকটর যুক্ত করতে হবে। একটি সাধারণ ডেটা ইনজেশন ফ্লো তৈরির জন্য নিচের স্টেপগুলি অনুসরণ করা যায়:

  1. প্রসেসর যুক্ত করা: ডেটা সোর্স থেকে ডেটা গ্রহণ করতে একটি প্রসেসর যুক্ত করুন (যেমন GetFile, ExecuteSQL ইত্যাদি)।
  2. কনফিগারেশন করা: প্রাপ্ত ডেটা ফাইল বা ডাটাবেসের জন্য সঠিক কনফিগারেশন দিন (যেমন ফাইলের পাথ, ডাটাবেসের ইউজারনেম, পাসওয়ার্ড ইত্যাদি)।
  3. কনেকটর যুক্ত করা: এক প্রসেসর থেকে অন্য প্রসেসরে ডেটা প্রবাহিত করতে কনেকটর তৈরি করুন।
  4. ডেটা যাচাই: ডেটা প্রক্রিয়া নিশ্চিত করতে একটি LogAttribute প্রসেসর ব্যবহার করুন, যা ডেটার মেটাডেটা বা কনটেন্ট যাচাই করতে সাহায্য করবে।

৪. ডেটা ট্রান্সফরমেশন (Data Transformation)

ডেটা ইনজেস্ট করার পরে প্রায়শই ডেটার রূপান্তর বা প্রসেসিং প্রয়োজন হয়। নিফাই প্রসেসরগুলি যেমন ReplaceText, UpdateAttribute, JoltTransformJSON ইত্যাদি ব্যবহার করে ডেটার রূপান্তর করা যায়। উদাহরণস্বরূপ, আপনি JSON ফাইলকে XML ফরম্যাটে রূপান্তর করতে পারেন বা CSV ফাইলকে JSON ফরম্যাটে রূপান্তর করতে পারেন।

৫. ডেটা গন্তব্যে প্রেরণ (Sending Data to Destination)

ডেটা ইনজেস্ট করার পরে, ডেটা যে গন্তব্যে পাঠানো হবে, তা নির্ধারণ করতে হবে। নিফাই ব্যবহারকারীদের বিভিন্ন গন্তব্যে ডেটা পাঠানোর সুবিধা দেয়:

  • PutFile: ডেটা ফাইল সিস্টেমে সংরক্ষণ করতে।
  • PutDatabaseRecord: ডেটা ডাটাবেসে ইনসার্ট করতে।
  • PutKafka: ডেটা Kafka তে পাঠাতে।
  • PutHDFS: Hadoop File System (HDFS) এ ডেটা সংরক্ষণ করতে।

উদাহরণ: ফাইল সিস্টেম থেকে ডেটা ইনজেস্ট করা

ধরা যাক, আমরা একটি ফোল্ডার থেকে CSV ফাইল সংগ্রহ করে সেটি ডাটাবেসে ইনজেস্ট করতে চাই। নিচে একটি সাধারণ ডেটা ইনজেশন ফ্লো দেখানো হলো:

  1. GetFile প্রসেসর ব্যবহার করে একটি নির্দিষ্ট ডিরেক্টরি থেকে ফাইল সংগ্রহ করুন।
  2. ConvertRecord প্রসেসর ব্যবহার করে CSV ফাইলটিকে JSON ফরম্যাটে রূপান্তর করুন।
  3. PutDatabaseRecord প্রসেসর ব্যবহার করে JSON ডেটাকে ডাটাবেসে ইনসার্ট করুন।

এই ফ্লো তৈরি করতে আপনি নিফাই এর গ্রাফিক্যাল ইউজার ইন্টারফেসে ড্র্যাগ-এন্ড-ড্রপ ভিত্তিতে প্রসেসরগুলিকে যুক্ত করতে পারবেন এবং তাদের কনফিগারেশন সম্পাদন করতে পারবেন।


সারাংশ

অ্যাপাচি নিফাই একটি অত্যন্ত শক্তিশালী ডেটা ইনজেশন টুল যা বিভিন্ন সোর্স থেকে ডেটা সংগ্রহ, প্রসেসিং এবং ট্রান্সফরমেশন সহজে পরিচালনা করতে সক্ষম। এর গ্রাফিক্যাল ইউজার ইন্টারফেসের মাধ্যমে ডেটা ফ্লো ডিজাইন করা, ডেটা ইনজেস্ট করা, এবং গন্তব্যে পাঠানো খুবই সুবিধাজনক। নিফাই ডেটা সংগ্রহের জন্য বিভিন্ন প্রসেসর, কনফিগারেশন এবং কনেকটর ব্যবহার করতে সক্ষম যা ডেটার গতি এবং নিরাপত্তা নিশ্চিত করে।

common.content_added_by

File System থেকে ডেটা সংগ্রহ করা (GetFile, ListFile)

124
124

অ্যাপাচি নিফাই (Apache NiFi) ফাইল সিস্টেম থেকে ডেটা সংগ্রহ করার জন্য GetFile এবং ListFile প্রসেসর দুটি ব্যবহার করে। এই প্রসেসরগুলো ফাইল সিস্টেম থেকে ডেটা সংগ্রহ এবং পরবর্তী প্রক্রিয়াকরণের জন্য প্রস্তুত করে। তাদের মধ্যে কিছু মৌলিক পার্থক্য রয়েছে, যা বিভিন্ন পরিস্থিতিতে ব্যবহারের জন্য উপযোগী।


ListFile Processor

ListFile প্রসেসরটি একটি ফোল্ডারের মধ্যে উপস্থিত ফাইলের একটি তালিকা তৈরি করে এবং সেই ফাইলগুলিকে প্রসেসরের কাছে প্রেরণ করে। এটি একটি পর্যবেক্ষক প্রসেসর হিসেবে কাজ করে, যা ফোল্ডারটিতে নতুন ফাইল যোগ হওয়া বা পুরনো ফাইল মুছে যাওয়ার প্রতি মনিটরিং করে।

ListFile এর কাজের ধাপ

  1. ফোল্ডার স্ক্যান করা: ListFile প্রসেসরটি নির্দিষ্ট ফোল্ডারটি স্ক্যান করে এবং সেখান থেকে ফাইলের একটি তালিকা তৈরি করে।
  2. ফাইলের মেটাডেটা: ফোল্ডারে থাকা প্রতিটি ফাইলের মেটাডেটা (যেমন ফাইলের নাম, আকার, সৃষ্টির সময়, ইত্যাদি) সংগ্রহ করে।
  3. FlowFile তৈরি করা: প্রতিটি ফাইলের জন্য একটি FlowFile তৈরি করে এবং এটিকে পরবর্তী প্রসেসরের কাছে পাঠায়।

উদাহরণ

ListFile --> FetchFile --> Process (transform, filter, etc.) --> PutFile (or any destination)

ListFile এর ব্যবহার

  • যখন আপনি একটি নির্দিষ্ট ফোল্ডারে ফাইল জমা হওয়ার সাথে সাথে সেগুলোর জন্য কাজ শুরু করতে চান।
  • বড় আকারের ফোল্ডারে থাকা ফাইলগুলি পর্যায়ক্রমে তালিকা করে প্রসেস করার জন্য।

GetFile Processor

GetFile প্রসেসরটি নির্দিষ্ট ফোল্ডার থেকে ফাইলগুলো সরাসরি সংগ্রহ করে এবং সেগুলিকে FlowFile হিসেবে পরবর্তী প্রসেসিংয়ের জন্য প্রেরণ করে। এটি ListFile এর মতো ফাইলের তালিকা তৈরি করে না, বরং ফাইলগুলিকে সরাসরি প্রসেস করে এবং পরে সেগুলো ডিলিট বা মুভ করতে পারে। এটি সাধারণত স্থিতিশীল বা নির্দিষ্ট সময় অন্তর ফাইল সংগ্রহের জন্য ব্যবহৃত হয়।

GetFile এর কাজের ধাপ

  1. ফোল্ডার থেকে ফাইল সংগ্রহ: GetFile প্রসেসরটি একটি নির্দিষ্ট ফোল্ডার থেকে একটি ফাইল সংগ্রহ করে এবং এটি একটি FlowFile তৈরি করে।
  2. ফাইল মুছে ফেলা বা স্থানান্তর: ফাইল সংগ্রহ করার পরে, GetFile সেই ফাইলটি ফোল্ডার থেকে মুছে ফেলতে বা অন্য কোনো স্থানে সরিয়ে দিতে পারে।

উদাহরণ

GetFile --> Process (transform, filter, etc.) --> PutFile (or any destination)

GetFile এর ব্যবহার

  • যখন আপনাকে একে একে ফাইল সংগ্রহ এবং প্রক্রিয়া করতে হবে এবং ফাইলটি একবার ব্যবহৃত হলে তা সরিয়ে দিতে হবে।
  • স্ট্যাটিক ডিরেক্টরি থেকে নির্দিষ্ট ফাইলগুলিকে সিস্টেমে নিয়ে আসার জন্য।

ListFile এবং GetFile এর মধ্যে পার্থক্য

বৈশিষ্ট্যListFileGetFile
কার্যকারিতাফোল্ডারে উপস্থিত ফাইলগুলোর তালিকা তৈরি করেনির্দিষ্ট ফোল্ডার থেকে ফাইল সংগ্রহ করে
ফাইল হ্যান্ডলিংফাইলের মেটাডেটা সংগ্রহ করে, ফাইল জমা হয়নিফাইলটি সরাসরি সংগ্রহ করে, মুছে দেয় বা স্থানান্তর করে
স্টোরেজ ম্যানেজমেন্টফাইল মুছে ফেলা হয় নাফাইলটি মুছে ফেলা বা সরিয়ে ফেলা হয়
ব্যবহারফাইল প্রবাহ ম্যানেজমেন্ট, পর্যবেক্ষণএকে একে ফাইল সংগ্রহ এবং স্থানান্তর

সারাংশ

অ্যাপাচি নিফাই (Apache NiFi) এর ListFile এবং GetFile প্রসেসর দুটি ফাইল সিস্টেম থেকে ডেটা সংগ্রহের জন্য ব্যবহৃত হয়, তবে তাদের ব্যবহার এবং কার্যকারিতায় কিছু পার্থক্য রয়েছে:

  • ListFile ফোল্ডারে উপস্থিত সব ফাইলের তালিকা তৈরি করে এবং ফাইলগুলোকে পরবর্তী প্রক্রিয়াতে প্রেরণ করে।
  • GetFile একটি নির্দিষ্ট ফোল্ডার থেকে সরাসরি ফাইল সংগ্রহ করে এবং সেগুলোকে পরবর্তী প্রসেসিং বা স্থানান্তরের জন্য প্রস্তুত করে।

এই দুটি প্রসেসরের মধ্য দিয়ে আপনি ফাইল সিস্টেমে ডেটা সংগ্রহ এবং প্রক্রিয়া করার কাজটি কার্যকরভাবে করতে পারবেন।


common.content_added_by

Database থেকে ডেটা সংগ্রহ (QueryDatabaseTable, ExecuteSQL)

131
131

অ্যাপাচি নিফাই (Apache NiFi) একটি শক্তিশালী ডেটা ফ্লো ব্যবস্থাপনা প্ল্যাটফর্ম, যা ডেটা সংগ্রহ, প্রক্রিয়া এবং স্থানান্তর করার জন্য ব্যবহৃত হয়। NiFi বিভিন্ন প্রকারের ডেটা উৎস থেকে ডেটা সংগ্রহ করতে সক্ষম এবং তার মধ্যে একটি প্রধান উৎস হল ডেটাবেস। এই উদ্দেশ্যে NiFi-তে দুটি গুরুত্বপূর্ণ প্রোসেসর রয়েছে: QueryDatabaseTable এবং ExecuteSQL। এই দুটি প্রোসেসর ব্যবহার করে আপনি ডেটাবেস থেকে ডেটা সংগ্রহ এবং প্রক্রিয়া করতে পারেন।


QueryDatabaseTable প্রোসেসর

QueryDatabaseTable কি?

QueryDatabaseTable প্রোসেসরটি একটি ডেটাবেস থেকে একটি টেবিলের সমস্ত বা নির্বাচিত ডেটা সংগ্রহ করতে ব্যবহৃত হয়। এটি মূলত একটি SELECT কুয়েরি চালায় যা টেবিলের নির্দিষ্ট রেকর্ডগুলো ডেটাবেস থেকে ফেচ করে নেয়।

ব্যবহার কিভাবে করবেন?

এটি সাধারণত যখন আপনি একটি নির্দিষ্ট টেবিলের সমস্ত বা কিছু ডেটা বের করতে চান তখন ব্যবহার করা হয়। এই প্রোসেসরটি ডেটাবেসের কনফিগারেশনের জন্য Database Connection Pooling Service ব্যবহার করে, যা ডেটাবেসের সাথে সংযোগ স্থাপন করতে সহায়ক।

কনফিগারেশন:

  1. Database Connection Pooling Service: ডেটাবেসের সাথে সংযোগ করার জন্য এই সার্ভিসটি কনফিগার করতে হবে।
  2. Table Name: টেবিলের নাম উল্লেখ করুন যেখান থেকে ডেটা সংগ্রহ করতে হবে।
  3. Max Rows Per FlowFile: প্রতি FlowFile-এ সর্বোচ্চ কতটি রেকর্ড থাকবে তা নির্ধারণ করুন।
  4. Query: যদি আপনি কোনো নির্দিষ্ট কুয়েরি ব্যবহার করতে চান, তাহলে তা এখানে উল্লেখ করতে পারবেন।

উদাহরণ:

ধরা যাক, একটি ডেটাবেস টেবিলের সমস্ত রেকর্ড সংগ্রহ করতে চান:

  1. Table Name: customers
  2. Max Rows Per FlowFile: 1000
  3. Query: আপনি যদি নির্দিষ্ট শর্তে ডেটা চান, তবে SQL কুয়েরি ব্যবহার করতে পারেন, যেমন:

    SELECT * FROM customers WHERE status = 'active'
    

এই কনফিগারেশনটি ডেটাবেস থেকে অ্যাকটিভ কাস্টমারদের তথ্য সংগ্রহ করবে।


ExecuteSQL প্রোসেসর

ExecuteSQL কি?

ExecuteSQL প্রোসেসরটি একটি SQL কুয়েরি (যেমন SELECT, INSERT, UPDATE, DELETE) চালানোর জন্য ব্যবহৃত হয়। এটি সাধারণত একাধিক রেকর্ড পেতে, বা ডেটাবেসে কোনো পরিবর্তন (INSERT, UPDATE, DELETE) করতে ব্যবহৃত হয়।

ব্যবহার কিভাবে করবেন?

এটি মূলত SQL কুয়েরি চালাতে ব্যবহৃত হয়, যেখানে আপনি একটি নির্দিষ্ট কুয়েরি লিখে ডেটাবেসে কার্যক্রম সম্পাদন করতে পারেন। এই প্রোসেসরটি ডেটাবেস থেকে ডেটা পুনরুদ্ধার করতে এবং তার সাথে ডেটা প্রক্রিয়া করতে সহায়ক।

কনফিগারেশন:

  1. Database Connection Pooling Service: ডেটাবেসের সাথে সংযোগ স্থাপনের জন্য কনফিগার করুন।
  2. SQL Query: এখানে আপনি আপনার SQL কুয়েরি লিখবেন। উদাহরণস্বরূপ, একটি SELECT কুয়েরি:

    SELECT id, name, address FROM customers WHERE status = 'active'
    

    অথবা ডেটাবেসে ইনসার্ট বা আপডেট করতে হলে সংশ্লিষ্ট কুয়েরি লিখুন।

  3. Max Rows Per FlowFile: প্রতি FlowFile-এ সর্বাধিক কতটি রেকর্ড থাকবে তা কনফিগার করুন।

উদাহরণ:

আপনি যদি একটি নির্দিষ্ট টেবিলের রেকর্ড সংগ্রহ করতে চান:

  1. SQL Query:

    SELECT * FROM customers WHERE signup_date > '2023-01-01'
    

    এই কুয়েরিটি সকল গ্রাহককে নির্বাচন করবে যাদের সাইনআপের তারিখ ২০২৩ সালের জানুয়ারি ১ তারিখের পর।


QueryDatabaseTable এবং ExecuteSQL এর মধ্যে পার্থক্য

বৈশিষ্ট্যQueryDatabaseTableExecuteSQL
কাজের ধরনটেবিল থেকে ডেটা ফেচ করা, সাধারণত SELECT কুয়েরিসাধারণ SQL কুয়েরি যেমন SELECT, INSERT, UPDATE চালানো
প্রতিক্রিয়াএক বা একাধিক রেকর্ডের জন্য FlowFile তৈরি হয়একাধিক রেকর্ড পেতে বা কোনো পরিবর্তন করতে ব্যবহৃত হয়
প্রতিটি FlowFile এর মধ্যেএকটি টেবিলের একাধিক রেকর্ড থাকতে পারেনির্দিষ্ট SQL কুয়েরির ফলাফল FlowFile এর মধ্যে থাকে
প্রক্রিয়াসাধারণত ডেটা সংগ্রহের জন্য ব্যবহৃতSQL কুয়েরি চালানোর জন্য ব্যবহৃত

ডেটাবেস থেকে ডেটা সংগ্রহের জন্য প্রোসেসরের সমন্বয়

যেহেতু QueryDatabaseTable এবং ExecuteSQL দুটি প্রোসেসর SQL কুয়েরি চালানোর জন্য ব্যবহৃত হয়, সুতরাং আপনি তাদের সমন্বয়ে ডেটাবেস থেকে ডেটা সংগ্রহ করতে পারেন। উদাহরণস্বরূপ, QueryDatabaseTable ব্যবহার করে আপনি ডেটা সংগ্রহ করতে পারেন এবং তারপরে ExecuteSQL ব্যবহার করে ডেটাবেসে কোনো পরিবর্তন করতে পারেন বা ডেটা প্রক্রিয়া করতে পারেন।

উদাহরণ: ডেটাবেস থেকে ডেটা সংগ্রহ এবং প্রক্রিয়া

  1. QueryDatabaseTable প্রোসেসরের মাধ্যমে ডেটাবেস থেকে ডেটা সংগ্রহ করুন।
  2. ExecuteSQL প্রোসেসরের মাধ্যমে অন্য কোনো SQL কুয়েরি চালান, যেমন ফিল্টারিং, আপডেট, বা ইনসার্ট।

সারাংশ

অ্যাপাচি নিফাই-তে QueryDatabaseTable এবং ExecuteSQL দুটি গুরুত্বপূর্ণ প্রোসেসর ডেটাবেস থেকে ডেটা সংগ্রহ এবং প্রক্রিয়া করতে ব্যবহৃত হয়। QueryDatabaseTable টেবিল থেকে নির্দিষ্ট ডেটা সংগ্রহ করতে ব্যবহৃত হয়, এবং ExecuteSQL SQL কুয়েরি চালানোর জন্য ব্যবহৃত হয় যা ডেটাবেসে পরিবর্তন বা ডেটা সংগ্রহ করতে সহায়ক। এই দুটি প্রোসেসরের সাহায্যে NiFi ডেটাবেস থেকে ডেটা সংগ্রহ এবং প্রক্রিয়া করা সহজ ও কার্যকরী হয়।

common.content_added_by

REST API এবং Web Services এর মাধ্যমে ডেটা সংগ্রহ করা

124
124

অ্যাপাচি নিফাই (Apache NiFi) একটি শক্তিশালী ডেটা ফ্লো ম্যানেজমেন্ট টুল যা ডেটা সংগ্রহ, প্রসেসিং এবং ট্রান্সফরমেশন পরিচালনা করতে ব্যবহৃত হয়। NiFi REST API এবং Web Services সমর্থন করে, যার মাধ্যমে আপনি বিভিন্ন ডেটা সোর্স থেকে ডেটা সংগ্রহ করতে এবং অন্যান্য সিস্টেমের সাথে ইন্টিগ্রেশন করতে সক্ষম হন।

REST API এবং Web Services এর মাধ্যমে ডেটা সংগ্রহ একটি সাধারণ পদ্ধতি, যেখানে আপনি HTTP প্রোটোকলের মাধ্যমে ডেটা রিকোয়েস্ট পাঠাতে এবং সেসব রেসপন্স গ্রহণ করতে পারেন। এই পদ্ধতিটি NiFi ব্যবহারকারীদের ডেটার মধ্যে আরও ব্যাপক যোগাযোগ এবং ইন্টিগ্রেশন সুযোগ প্রদান করে।

REST API এর মাধ্যমে ডেটা সংগ্রহ

NiFi এর REST API বিভিন্ন কার্যক্রম সম্পাদন করার জন্য ব্যবহৃত হয়, যেমন ডেটা ফ্লো পরিচালনা, প্রসেসর চালানো, এবং ডেটা সংগ্রহ করা। এটি HTTP রিকোয়েস্টের মাধ্যমে NiFi সিস্টেমের বিভিন্ন উপাদান পরিচালনা করার সুযোগ দেয়।

NiFi REST API ব্যবহার করে ডেটা সংগ্রহের উদাহরণ

NiFi REST API থেকে ডেটা সংগ্রহের জন্য সাধারণভাবে HTTP GET রিকোয়েস্ট ব্যবহার করা হয়। উদাহরণস্বরূপ, আপনি একটি প্রসেসরের স্ট্যাটাস বা ডেটা ফ্লো সম্পর্কিত তথ্য সংগ্রহ করতে API রিকোয়েস্ট পাঠাতে পারেন।

# GET request to NiFi REST API to fetch processor status
curl -X GET "http://localhost:8080/nifi-api/processors" -H "Content-Type: application/json"

উপরের রিকোয়েস্টটি NiFi এর প্রসেসরের স্ট্যাটাস সম্পর্কে তথ্য ফেরত দিবে।

NiFi Web Services এর মাধ্যমে ডেটা সংগ্রহ

NiFi বিভিন্ন Web Services ইন্টিগ্রেট করার জন্য সহজে কনফিগারযোগ্য। এটি HTTP, HTTPS, FTP, SFTP, এবং অন্যান্য প্রোটোকল ব্যবহার করে Web Services এর মাধ্যমে ডেটা সংগ্রহ করতে সক্ষম। NiFi এর GetHTTP এবং GetFile প্রসেসরগুলি ব্যবহার করে Web Services এর মাধ্যমে ডেটা গ্রহণ করা যায়।

GetHTTP প্রসেসরের মাধ্যমে Web Service থেকে ডেটা সংগ্রহ

GetHTTP প্রসেসর HTTP অথবা HTTPS প্রোটোকল ব্যবহার করে Web Service থেকে ডেটা সংগ্রহ করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, যদি আপনার Web Service একটি JSON ফাইল প্রদান করে, তাহলে NiFi এই ডেটা সংগ্রহ করতে এবং সেটি প্রসেস করতে পারে।

1. Add a "GetHTTP" processor to the NiFi canvas.
2. Configure the processor by setting the URL of the REST API or Web Service endpoint.
3. Define the HTTP method (GET, POST) and other headers if required.
4. The processor will fetch data from the Web Service and process it.

POST রিকোয়েস্ট পাঠিয়ে Web Service এ ডেটা পাঠানো

NiFi Web Services এর মাধ্যমে ডেটা পাঠানোর জন্য PostHTTP প্রসেসর ব্যবহার করতে পারে। যদি আপনাকে Web Service এ ডেটা পাঠানোর প্রয়োজন হয়, তবে এই প্রসেসরটি ব্যবহার করা যেতে পারে।

1. Add a "PostHTTP" processor to the NiFi canvas.
2. Set the target URL (the Web Service endpoint).
3. Configure the processor with necessary headers, authentication tokens, and request body (e.g., JSON or XML).
4. The processor will send data to the Web Service.

REST API এবং Web Services এর মাধ্যমে NiFi এ ডেটা সংগ্রহের সুবিধা

  1. স্বয়ংক্রিয় ইন্টিগ্রেশন: REST API এবং Web Services ব্যবহার করে আপনি বিভিন্ন সিস্টেম বা সেবা থেকে স্বয়ংক্রিয়ভাবে ডেটা সংগ্রহ করতে পারেন। এটি ডেটার প্রবাহ অটোমেট করতে সহায়ক।
  2. স্কেলেবিলিটি: NiFi REST API ব্যবহার করে বড় আকারের ডেটা সংগ্রহ এবং প্রক্রিয়াকরণ সহজতর হয়। এটি সহজে একাধিক API বা Web Service এর সাথে সংযোগ স্থাপন করতে সক্ষম।
  3. সুবিধাজনক কনফিগারেশন: NiFi এর GUI এবং REST API সহ Web Services কনফিগারেশন সহজ। আপনি ডেটার উৎস এবং গন্তব্য দ্রুত সেটআপ করতে পারেন এবং ডেটার প্রবাহ পরিচালনা করতে পারেন।
  4. ডেটার রিয়েল-টাইম প্রসেসিং: REST API এবং Web Services এর মাধ্যমে ডেটা সংগ্রহ করার ফলে আপনি রিয়েল-টাইম ডেটা প্রক্রিয়াকরণ করতে পারেন। এটি বিশেষত লগ ম্যানেজমেন্ট, সেন্সর ডেটা সংগ্রহ, এবং ইভেন্ট ট্র্যাকিংয়ে কার্যকরী।
  5. অ্যাডভান্সড ফিল্টারিং এবং ট্রান্সফরমেশন: NiFi ব্যবহারকারীদের ডেটা সংগ্রহ করার পর সেটি ফিল্টার, ট্রান্সফর্ম এবং অন্যান্য প্রক্রিয়া করার সুযোগ প্রদান করে, যা ডেটার গুণগত মান বৃদ্ধি করতে সাহায্য করে।

REST API এবং Web Services এর মাধ্যমে NiFi ডেটা সংগ্রহ করার ফলে আপনি দ্রুত এবং কার্যকরীভাবে বিভিন্ন উৎস থেকে ডেটা প্রক্রিয়া করতে পারবেন। NiFi এর এই ক্ষমতা ব্যবসায়িক কাজের গতি বাড়ানোর পাশাপাশি, ডেটা ফ্লো ম্যানেজমেন্ট ও অটোমেশনকে আরও সহজ এবং দক্ষ করে তোলে।

common.content_added_by

Real-time Streaming Data সংগ্রহ (Kafka, MQTT)

168
168

অ্যাপাচি নিফাই (Apache NiFi) একটি শক্তিশালী প্ল্যাটফর্ম যা রিয়েল-টাইম ডেটা সংগ্রহ, প্রক্রিয়া এবং বিতরণ করতে ব্যবহৃত হয়। এটি ডেটা ইন্টিগ্রেশন এবং স্ট্রিমিং ডেটা প্রসেসিংয়ের জন্য বেশ কার্যকর, বিশেষ করে যখন কফকা (Kafka) এবং MQTT (Message Queuing Telemetry Transport) এর মতো প্রযুক্তির মাধ্যমে রিয়েল-টাইম ডেটা সংগ্রহ করতে হয়। NiFi এই দুইটি জনপ্রিয় স্ট্রিমিং প্রযুক্তির সাথে একত্রে কাজ করতে পারে, যা সহজেই ডেটা সংগ্রহ, ট্রান্সফরমেশন এবং আউটপুট পরিচালনা করতে সহায়ক।


রিয়েল-টাইম স্ট্রিমিং ডেটা সংগ্রহ (Kafka, MQTT)

১. Kafka এর মাধ্যমে রিয়েল-টাইম ডেটা সংগ্রহ

Kafka হল একটি ডিস্ট্রিবিউটেড স্ট্রিমিং প্ল্যাটফর্ম যা উচ্চ পরিমাণের রিয়েল-টাইম ডেটা প্রক্রিয়া করতে সক্ষম। এটি ডেটা সংগ্রহ এবং প্রসেসিংয়ের জন্য একটি অবিচ্ছেদ্য টুল। অ্যাপাচি নিফাই কফকা থেকে ডেটা সংগ্রহ করার জন্য নির্দিষ্ট প্রসেসর সরবরাহ করে।

  • Kafka Producer এবং Consumer: Kafka সাধারণত একটি Producer এবং Consumer মডেল ব্যবহার করে। Producer ডেটা পাঠায় এবং Consumer ডেটা গ্রহণ করে। অ্যাপাচি নিফাই এই Consumer রূপে কাজ করতে পারে, যেখানে NiFi কফকা টপিক থেকে ডেটা সংগ্রহ করে এবং পরবর্তী প্রক্রিয়াকরণের জন্য পাঠায়।
  • NiFi Kafka Integration: অ্যাপাচি নিফাই কফকা থেকে ডেটা সংগ্রহ করার জন্য ConsumeKafka প্রসেসর ব্যবহার করে। এই প্রসেসরের মাধ্যমে NiFi একটি নির্দিষ্ট Kafka টপিক থেকে মেসেজ গ্রহণ করতে পারে এবং এগুলিকে FlowFile হিসেবে প্রক্রিয়া করতে পারে।

    উদাহরণ:

    ConsumeKafka_2_0 -> Processors for Transformation -> PutDatabaseRecord
    

    এখানে, ConsumeKafka_2_0 প্রসেসর কফকা টপিক থেকে ডেটা গ্রহণ করে এবং এরপর NiFi সেই ডেটাকে প্রক্রিয়া করে এবং ডেটাবেসে পাঠায়।

  • Kafka Configuration: NiFi এর মাধ্যমে কফকার সাথে সংযুক্ত হতে, কনফিগারেশন ফাইলের মধ্যে কফকা ব্রোকার, টপিক নাম, এবং অন্যান্য সংযোগের বিবরণ উল্লেখ করতে হয়।

২. MQTT এর মাধ্যমে রিয়েল-টাইম ডেটা সংগ্রহ

MQTT একটি লাইটওয়েট মেসেজিং প্রোটোকল, যা মূলত IoT (Internet of Things) ডিভাইসগুলির মধ্যে কমপ্লেক্স এবং রিয়েল-টাইম ডেটা কমিউনিকেশন পরিচালনা করার জন্য ব্যবহৃত হয়। MQTT অত্যন্ত কম ব্যান্ডউইথের প্রয়োজনীয়তা এবং দ্রুত রেসপন্স টাইমের কারণে, এটি রিয়েল-টাইম স্ট্রিমিং ডেটা সংগ্রহের জন্য একটি জনপ্রিয় প্রযুক্তি।

  • MQTT Client: MQTT সার্ভারের সাথে যোগাযোগ করার জন্য NiFi একটি ConsumeMQTT প্রসেসর প্রদান করে। এটি MQTT সার্ভারের সাথে কানেক্ট করে এবং একটি নির্দিষ্ট টপিক থেকে ডেটা সংগ্রহ করতে সক্ষম।
  • NiFi MQTT Integration: NiFi ConsumeMQTT প্রসেসরের মাধ্যমে MQTT টপিক থেকে ডেটা গ্রহণ করে এবং তা FlowFile আকারে প্রক্রিয়া করে। এই প্রসেসরের মাধ্যমে NiFi MQTT ব্রোকারে সাবস্ক্রাইব করে রিয়েল-টাইম ডেটা সংগ্রহ করতে পারে।

    উদাহরণ:

    ConsumeMQTT -> Processors for Transformation -> PutFile
    

    এখানে, ConsumeMQTT প্রসেসর MQTT ব্রোকার থেকে ডেটা গ্রহণ করে এবং পরে NiFi সেই ডেটাকে প্রক্রিয়া করে এবং ফাইল সিস্টেমে সংরক্ষণ করে।

  • MQTT Configuration: MQTT ব্রোকারের সাথে সংযোগ স্থাপন করতে, NiFi এর ConsumeMQTT প্রসেসরে MQTT সার্ভারের URL, পোর্ট, টপিক, এবং অন্যান্য কনফিগারেশন সেট করতে হবে।

NiFi এর মাধ্যমে Kafka এবং MQTT থেকে রিয়েল-টাইম ডেটা সংগ্রহের সুবিধাসমূহ

১. এডাপটিভ স্কেলেবিলিটি

NiFi বিভিন্ন ধরনের স্ট্রিমিং ডেটা সোর্সের সাথে সংযুক্ত হতে সক্ষম এবং রিয়েল-টাইম ডেটা সংগ্রহের জন্য এটি অত্যন্ত স্কেলেবল। এটি বড় পরিমাণে ডেটা ব্যবস্থাপনা এবং প্রসেসিং করতে সক্ষম, যেখানে বিভিন্ন সোর্স থেকে ডেটা সংগ্রহ করা হয়।

২. ব্যবহারকারীর জন্য সহজ ইন্টারফেস

NiFi একটি গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) প্রদান করে, যা ব্যবহারকারীদের জন্য Kafka এবং MQTT এর মতো টেকনোলজির সাথে সহজে ইন্টিগ্রেট হতে সহায়ক। এটি ডেটা ফ্লো ডিজাইন এবং কনফিগারেশন প্রক্রিয়াকে সরল করে তোলে।

৩. ফ্লেক্সিবল ডেটা প্রসেসিং

NiFi বিভিন্ন প্রসেসর সরবরাহ করে যা ডেটা সংগ্রহের পর ট্রান্সফরমেশন এবং আউটপুট প্রদান করতে সাহায্য করে। এটি ডেটার প্রক্রিয়া ও পরিবর্তন করতে ব্যবহারকারীকে সক্ষম করে, যেমন JSON থেকে CSV তে রূপান্তর, ফিল্টারিং, বা ডেটার ভারসাম্য বজায় রাখা।

৪. মনিটরিং এবং ট্রাবলশুটিং

NiFi রিয়েল-টাইম ডেটা ফ্লো মনিটর করতে এবং সার্ভিস ট্রাবলশুট করতে সহায়ক। এটি ব্যবহারকারীদের ফ্লো স্ট্যাটাস, ডেটা ফ্লো এবং কর্মক্ষমতা বিশ্লেষণের সুযোগ প্রদান করে।


সারাংশ

অ্যাপাচি নিফাই রিয়েল-টাইম ডেটা সংগ্রহে একটি অত্যন্ত কার্যকরী প্ল্যাটফর্ম, বিশেষ করে যখন Kafka এবং MQTT এর মতো স্ট্রিমিং প্রযুক্তির সাথে কাজ করতে হয়। NiFi এর মাধ্যমে এই স্ট্রিমিং ডেটা সোর্স থেকে ডেটা সংগ্রহ, প্রক্রিয়া এবং আউটপুট সহজে পরিচালনা করা যায়। এটি ডেটা সংগ্রহের জন্য একাধিক প্রসেসরের মাধ্যমে বিভিন্ন প্রোটোকল এবং ফরম্যাটের সমর্থন প্রদান করে, যা রিয়েল-টাইম ডেটা ইন্টিগ্রেশন এবং প্রসেসিংকে আরও কার্যকর করে তোলে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion